const mongoose = require("./db");

// 商品类型
const commodityTypeSchema = mongoose.Schema({
  id: String,
  name: String,
  attributeCount: Number,
  paramCount: Number,
});

// 商品类型属性列表
const commodityTypePropertySchema = mongoose.Schema({
    "id": Number,
    "productAttributeCategoryId": Number,
    "name": String,
    "selectType": Number,
    "inputType": Number,
    "inputList": String,
    "sort": Number,
    "filterType": Number,
    "searchType": Number,
    "relatedStatus": Number,
    "handAddStatus": Number,
    "type": Number
})

const commodityTypePropertyModel = mongoose.model('commodityTypeProperty', commodityTypePropertySchema, 'commodityTypeProperty')

// 商品类型参数列表
const commodityTypeParametersSchema = mongoose.Schema({
    "id": Number,
    "productAttributeCategoryId": Number,
    "name": String,
    "selectType": Number,
    "inputType": Number,
    "inputList": String,
    "sort": Number,
    "filterType": Number,
    "searchType": Number,
    "relatedStatus": Number,
    "handAddStatus": Number,
    "type": Number
})

const commodityTypeParametersModel = mongoose.model('commodityTypeParameters', commodityTypeParametersSchema, 'commodityTypeParameters')


//商品分类
const commodityClassifySchema = mongoose.Schema({
  id: Number,
  parentId: Number,
  name: String,
  level: Number,
  productCount: Number,
  productUnit: String,
  navStatus: Number,
  showStatus: Number,
  sort: Number,
  icon: String,
  keywords: String,
  description: String,
});

const commodityClassifyModel = mongoose.model(
  "CommodityClassify",
  commodityClassifySchema,
  "CommodityClassify"
);

const commodityTypeModel = mongoose.model(
  "CommodityType",
  commodityTypeSchema,
  "CommodityType"
);

// 商品列表
const commodityListSchema = mongoose.Schema({
        id: Number, // 产品的唯一标识符
        brandId: Number, // 产品品牌的标识符
        productCategoryId: Number, // 产品类别的表示符
        feightTemplateId: Number, //运费模板的标识符
        productAttributeCategoryId: Number, //产品属性类别的标识符
        name: String, //产品名称
        pic: String, //产品图片
        productSn: Number, //产品货号
        deleteStatus: Number, //产品是否删除（0 表示未删除）
        publishStatus: Number, //表示产品是否已发布（1表示已发布）。
        newStatus: Number, // 表示产品是否为新品（1表示是新品）
        recommandStatus: Number, // 表示产品是否为推荐商品（1表示是推荐商品）
        verifyStatus: Number, // 表示产品是否审核通过（1表示审核通过）
        sort: Number, // 表示产品排序
        sale: Number, // 表示产品销量
        price: Number, // 表示产品普通价格
        promotionPrice: Number, // 表示产品促销价格
        giftGrowth: Number, // 表示产品赠送的成长值
        giftPoint: Number, // 表示产品赠送的积分
        usePointLimit: Number, // 表示产品限制使用的积分数
        subTitle: String, // 表示产品副标题
        originalPrice: Number, // 表示产品原价
        stock: Number, // 表示产品库存
        lowStock: Number, // 表示产品库存预警值，低库存警告
        unit: String,   // 表示产品单位
        weight: Number, // 表示产品重量
        previewStatus: Number, // 表示产品是否为预告商品（1表示是预告商品）
        serviceIds: String, // 表示产品服务保证
        keywords: String, // 表示产品关键字
        note: String, // 表示产品备注
        albumPics: String, // 表示产品画册图片，连产品图片限制为5张
        detailTitle: String, // 表示产品详情标题
        promotionStartTime: String, // 表示产品促销开始时间
        promotionEndTime: String, // 表示产品促销结束时间
        promotionPerLimit: Number, // 表示产品促销限购数量
        promotionType: Number, // 表示产品促销类型（0表示没有促销使用原价，1表示使用促销价，2表示使用会员价）
        brandName: String, // 表示产品品牌名称
        productCategoryName: String, // 表示产品分类名称
        description: {
          type:String,
          default:null
        }, // 表示产品描述
        detailDesc: {
          type:String,
          default:null
        }, // 表示产品详细描述
        detailHtml: {
          type:String,
          default:null
        }, // 表示产品详细描述的HTML格式
        detailMobileHtml: {
          type:String,
          default:null
        } // 表示产品详细描述的移动端HTML格式
})

const commodityListModel = mongoose.model('commodityList', commodityListSchema, 'commodityList')

// sku数据
const skuSchema = mongoose.Schema({
    id: Number,                   // 商品ID
    productId: Number,             // 产品ID
    skuCode: String,               // SKU编码
    price: Number,                // 原价
    stock: Number,                // 库存量
    lowStock: Number,            // 低库存阈值
    pic: Number,                 // 商品图片
    sale: Number,                // 销量
    promotionPrice: Number,     // 促销价格
    lockStock: Number,          // 锁定库存量
    spData: String              // 商品的规格信息，以JSON字符串形式存储
})

const skuModel = mongoose.model('sku', skuSchema, 'sku')


module.exports ={ 
  commodityTypeModel,commodityClassifyModel, 
  commodityTypePropertyModel,commodityTypeParametersModel,
  commodityListModel,skuModel
}
